-
Notifications
You must be signed in to change notification settings - Fork 6
feat: 1346 license details UI #1519
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements a comprehensive redesign of the license details UI and feed summary components. The changes introduce a new dialog-based license viewer that displays structured license rules (permissions, conditions, limitations) and consolidates the GBFS and GTFS feed information displays into a single unified component.
Key Changes:
- Added a new license Redux store with saga for fetching and caching license details
- Created a
LicenseDialogcomponent that displays license rules categorized by type with color-coded visual indicators - Consolidated
GbfsFeedInfoandGtfsFeedSummaryinto a singleFeedSummarycomponent that handles all feed types - Updated theme colors for warning and info to improve accessibility
- Removed redundant "See License" button from feed header
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
web-app/src/app/types.ts |
Adds license profile action types and error handling types |
web-app/src/app/store/saga/root-saga.ts |
Registers the new license saga watcher |
web-app/src/app/store/saga/license-saga.ts |
Implements license fetching with 1-hour caching logic |
web-app/src/app/store/reducers.ts |
Integrates license reducer into root state |
web-app/src/app/store/license-selectors.ts |
Provides selector functions for license state access |
web-app/src/app/store/license-reducer.ts |
Manages license loading state and cached data |
web-app/src/app/services/feeds/index.ts |
Adds API endpoint for fetching license details |
web-app/src/app/screens/Feed/index.tsx |
Removes license button, switches to unified FeedSummary component |
web-app/src/app/screens/Feed/components/LicenseDialog.tsx |
New dialog displaying license rules with categorized sections |
web-app/src/app/screens/Feed/components/GbfsFeedInfo.tsx |
Deleted (functionality moved to FeedSummary) |
web-app/src/app/screens/Feed/components/FeedSummary.tsx |
Unified component supporting GTFS, GTFS-RT, and GBFS feeds with license integration |
web-app/src/app/screens/Feed/components/FeedAuthenticationSummaryInfo.tsx |
Deleted (functionality consolidated into FeedSummary) |
web-app/src/app/screens/Feed/components/CopyLinkElement.tsx |
Adds 'internal' link type support for triggering dialog actions |
web-app/src/app/components/CoveredAreaMap.tsx |
Removes conditional GBFS border styling |
web-app/src/app/Theme.ts |
Updates warning and info colors for better accessibility |
web-app/public/locales/en/feeds.json |
Adds translations for license dialog and feed summary labels |
web-app/public/locales/en/common.json |
Adds common translations for UI elements |
| {t('license.contributeMessage')} | ||
| </Typography> | ||
| <Link | ||
| href={`https://github.com/MobilityData/licenses-aas/blob/main/data/licenses/${license.id}.json`} |
Copilot
AI
Dec 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The GitHub repository URL is hardcoded. Consider moving this to a configuration constant or environment variable to make it easier to maintain if the repository location changes.
|
*Lighthouse ran on https://mobility-feeds-dev--pr-1519-q76db6ib.web.app/ * (Desktop)
*Lighthouse ran on https://mobility-feeds-dev--pr-1519-q76db6ib.web.app/feeds * (Desktop)
*Lighthouse ran on https://mobility-feeds-dev--pr-1519-q76db6ib.web.app/feeds/gtfs/mdb-2126 * (Desktop)
*Lighthouse ran on https://mobility-feeds-dev--pr-1519-q76db6ib.web.app/feeds/gtfs_rt/mdb-2585 * (Desktop)
*Lighthouse ran on https://mobility-feeds-dev--pr-1519-q76db6ib.web.app/gbfs/gbfs-flamingo_porirua * (Desktop)
|
|
Preview Firebase Hosting URL: https://mobility-feeds-dev--pr-1519-q76db6ib.web.app |
…or improved rule presentation and responsiveness
…, and update FeedSummary component to use them.
… and standardize null/undefined checks in FeedSummary.
296ebcd to
9d018ca
Compare
|
@Alessandro100 This is great! Is there a good example for GTFS as well? I'm having trouble finding an example feed. My only thought for improvement is that the SPDX breakdown is so clear and visually beautiful that I don't want people to miss it. Only presenting it after clicking on the license type feels too easy to miss to me. Thoughts on adding a button that says "License Detail Summary" or a visual element that's similar? This is so useful I don't want anyone to miss it. |
Few examples: |
|
Thanks @davidgamez! I should have thought to look at the French data to check. No new comments from me — only the one above, where I want to make sure this amazing feature gets the attention it deserves! |
|
@Alessandro100 Perfect. All good on my end. I won't approve the PR so code review can still continue. |
| string, | ||
| { license: License; fetchedAt: number } | ||
| >; | ||
| // License data rarely changes, but we use a 1-hour cache duration to ensure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
davidgamez
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 🎖️

Summary:
closes #1346
Feed Summary
Expected behavior:
When going on a feed that has a license id, you'll be able to see it in the feed summary area. If you click it, a dialog should appear showing the rules
If the feed only has a license url (no license id) it will display a link you can click on
If the feed does not have a license url, the license group will not show up
The GBFS feed info page has been updated
Testing tips:
Please make sure these boxes are checked before submitting your pull request - thanks!
./scripts/api-tests.shto make sure you didn't break anything